package com.youlu.campus.entity.card.entity;

import com.youlu.campus.base.base.EntityBase;
import lombok.Data;
import org.springframework.data.annotation.Transient;
import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;

import java.time.LocalDateTime;

/**
 * @author : [dengbo]
 * @className : CardOrder
 * @description : [卡订单]
 * @createTime : [2022/12/19 17:13]
 */
@Data
@Document(collection = "card_order")
public class CardOrder extends EntityBase {
    /**
     * 活动id
     */
    private String activityId;
    /**
     * appId
     */
    private String appId;
    /**
     * 三方商品Id
     */
    @Indexed
    private String thirdGoodsCode;
    private String firstCateId;
    private String secondCateId;
    /**
     * 用户id
     */
    @Indexed
    private String userId;
    /**
     * openId
     */
    private String openId;
    /**
     * unionId
     */
    private String unionId;
    /**
     * 支付状态 0 未支付 1 充值中 2 已充值 3 已退款 4 退款中
     */
    private Integer status = 0;
    /**
     * 支付金额 分
     */
    private Integer price;
    /**
     * 订单号
     */
    @Indexed(unique = true)
    private String orderNo;
    /**
     * 支付时间
     */
    private LocalDateTime payTime;
    /**
     * 昵称
     */
    private String nickName;
    /**
     * 商品名称
     */
    private String name;
    /**
     * 充值账号
     */
    private String chargeAccount;
    /**
     * 用户手机号
     */
    private String phone;
    /**
     * 平台
     */
    private String platform;
    /**
     * 商户id
     */
    private String merchantId;
    /**
     * 商户名称
     */
    private String merchantName;
    /**
     * 客户端ip
     */
    private String clientIp;
    /**
     * 退款单号
     */
    private String refundNo;
    /**
     * 退款时间
     */
    private LocalDateTime refundTime;
    /**
     * 微信交易单号
     */
    private String transactionId;
    /**
     *  有效时间
     */
    private LocalDateTime expireTime;
    /**
     *  订单开始时间
     */
    private LocalDateTime startTime;
    /**
     * 支付信息
     */
    private Object payInfo;
    /**
     * 退款信息
     */
    private Object refundInfo;
    /**
     * 退款原因
     */
    private Object refundReason;
    /**
     * 三方订单Id
     */
    @Indexed
    private String thirdOrderId;
    /**
     * 分类图片
     */
    @Transient
    private String cateImage;

}
